#ifndef __BUS_MANAGER_H__
#define __BUS_MANAGER_H__

#include <bus/busInterface.h>

#include <vector>
#include <string>
#include <boost/shared_ptr.h>

namespace ECG
{
namespace HAL
{
    class BusManager;
    typedef boost::shared_ptr<BusManager> BusManagerPtr;

    class BusManager
    {
    public:
        static BusManagerPtr instance();
        bool loadBusInstance();// match device and driver,and create busInstance
        std::vector<BusInterfacePtr> &getBusInstanceArray();
    private:
        BusManager();
        ~BusManager();
        bool like(std::string devID,std::string drvID);
        std::vector<BusInterfacePtr> busVec;
        static BusManagerPtr m_busManager;
    };

}
}



#endif //__BUS_MANAGER_H__